6882d519a82e4278eca42196a978bae9ee663df0,jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java,BindTest,testRebind,#,247
Before Change
status = this.client.executeMethod(mkcol);
assertEquals(201, status);
mkcol = new MkColMethod(subcol1);
status = this.client.executeMethod(mkcol);
assertEquals(201, status);
mkcol = new MkColMethod(subcol2);
status = this.client.executeMethod(mkcol);
assertEquals(201, status);
//create new resource R with path bindtest1/res1
PutMethod put = new PutMethod(testres1);
put.setRequestEntity(new StringRequestEntity("foo", "text/plain", "UTF-8"));
status = this.client.executeMethod(put);
assertEquals(201, status);
// enabling version control always makes the resource referenceable
VersionControlMethod versioncontrol = new VersionControlMethod(testres1);
status = this.client.executeMethod(versioncontrol);
assertTrue("status: " + status, status == 200 || status == 201);
URI r1 = this.getResourceId(testres1);
GetMethod get = new GetMethod(testres1);
status = this.client.executeMethod(get);
assertEquals(200, status);
assertEquals("foo", get.getResponseBodyAsString());
//rebind R with path bindtest2/res2
DavMethodBase rebind = new RebindMethod(subcol2, new RebindInfo(testres1, "res2"));
status = this.client.executeMethod(rebind);
assertEquals(201, status);
URI r2 = this.getResourceId(testres2);
get = new GetMethod(testres2);
status = this.client.executeMethod(get);
assertEquals(200, status);
assertEquals("foo", get.getResponseBodyAsString());
After Change
int status;
try {
HttpMkcol mkcol = new HttpMkcol(testcol);
status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
assertEquals(201, status);
mkcol = new HttpMkcol(subcol1);
status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
assertEquals(201, status);
mkcol = new HttpMkcol(subcol2);
status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
assertEquals(201, status);
//create new resource R with path bindtest1/res1
HttpPut put = new HttpPut(testres1);
put.setEntity(new StringEntity("foo", ContentType.create("text/plain", "UTF-8")));
status = this.client.execute(put, this.context).getStatusLine().getStatusCode();
assertEquals(201, status);
// enabling version control always makes the resource referenceable
HttpVersionControl versioncontrol = new HttpVersionControl(testres1);
status = this.client.execute(versioncontrol, this.context).getStatusLine().getStatusCode();
assertTrue("status: " + status, status == 200 || status == 201);
URI r1 = this.getResourceId(testres1);
HttpGet get = new HttpGet(testres1);
HttpResponse resp = this.client.execute(get, this.context);
status = resp.getStatusLine().getStatusCode();
assertEquals(200, status);
assertEquals("foo", EntityUtils.toString(resp.getEntity()));
//rebind R with path bindtest2/res2
HttpRebind rebind = new HttpRebind(subcol2, new RebindInfo(testres1, "res2"));
status = this.client.execute(rebind, this.context).getStatusLine().getStatusCode();
assertEquals(201, status);
URI r2 = this.getResourceId(testres2);
get = new HttpGet(testres2);
resp = this.client.execute(get, this.context);
status = resp.getStatusLine().getStatusCode();
assertEquals(200, status);
assertEquals("foo", EntityUtils.toString(resp.getEntity()));
//make sure that rebind did not change the resource-id
assertEquals(r1, r2);
//verify that the initial binding is gone
HttpHead head = new HttpHead(testres1);
status = this.client.execute(head, this.context).getStatusLine().getStatusCode();
assertEquals(404, status);
} finally {
delete(testcol);